home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
ms_dos
/
thf
/
thf.doc
< prev
next >
Wrap
Text File
|
1993-07-08
|
12KB
|
341 lines
“THf”テキスト・フォーマッタ 説明書き
【配付ファイル】
THfは、以下のファイルで構成されています。
THf.exe プログラム本体
THf.c ソース
THf.doc ドキュメント
THf.thf ドキュメントのソース
【概略】
テキスト・フォーマッタを知らない人の為に説明します。一般に、パソコ
ン上での文章は、余程の都合が無いかぎり、DOSのテキスト形式を取りま
す。一番素直で、サポートしているソフトが最も多いと言えます。しかし、
これには多くの欠点があります。もともと、文字が適当に表示できればそれ
でいいというものなので、書式付けとかの指定が出来ませんし、それを手で
全て行ったら、後で書き直す時に困ります。例えば、以下の文章を書きたい
とします。
ゴリラが煙草を吸っ
たことを、あなた
は見たことがあり
ますか?
もし、この「ゴリラ」というのを「オラウータン」にしたいとします。単
純に「ゴリラ」の文字を消し、「オラウータン」に置き換えただけでは、
オラウータンが煙草を吸っ
たことを、あなた
は見たことがあり
ますか?
となります。もっと長い文章だと分かりやすいのですが、これをテキスト・
フォーマッタを使って書きますと、こう出来ます。
オラウータンが煙
草を吸ったことを、
あなたは見たこと
がありますか?
このソフトには、重モードと単モードがあります。重モードとは、ピリオ
ド+英小文字でコントロール・シーケンスとして書式を指示し、フォーマッ
ティングを行うことが出来ます。基本的に、このソフトはこれがメインです。
単モードとは、ただ単に禁足処理を行うだけです。
言ってしまえば、重モードと単モードとの区別はしません。指定したファ
イルにコントロール・シーケンスが書かれていたらその処理をする、という
だけです。
テキスト・フォーマッタには、色々なタイプがありますが、このソフトが
どれに属するか、作者自身は知りません。ただ、作表やマクロなどの機能は
やっぱりありませんし、単純な割には速度もあまり速く無いでしょう。
【起動方法】
コマンドラインから、実行します。その時に、入力ファイルを指定してく
ださい。拡張子は省略出来ませんが、.thfの時は省略できます。
THf <input_file> [output-.ext]
入力ファイルの次には、出力ファイルの拡張子を決められます。拡張子だ
けを書いてください。なお、ピリオドは要りません(書かないで下さい)。
省略時にはDOCになるので、そのままでも問題ないと思います。
なお、何もコマンドラインに書かないと、ヘルプ画面を表示します。しか
し、あまり役には立たないでしょう。
【シーケンス一覧】
シーケンスは全て「ピリオド+英小文字」ですので、英小文字の方だけを
抜き出します。便宜上、アルファベット順にはしていません。
【入力操作系】
d 書式を設定します。初期には、“%s”と設定されています。C
と似たようなものを指定できますが、文字とその幅しか指定でき
ません。幅の指定方法ですが、パーセント記号とsの間にそのま
ま数値を書くか、それとも不等号による括弧記号で挟まれたもの
をベース文字として使用します。なお、&によるループ記号とい
うものがあり、この記号を指定すると、マクロが全て終わった時
に、最初に戻らずにこの直後にポイントされます。一つの書式の
かたまりを終える時は、文字列の最後にスラッシュ(割り算の記
号)を書いてください。そうすると、次は戻りません。なお、ルー
プ記号は最後に書くとエラーを通告します。
dd 書式の有効非有効を切り換える。最初は有効。非有効時に書式を
変更しても、モードは持続する。
di マクロポインタをリセットします。ポインタは、ループ記号に係
わらず最初に戻ります。
ns 空行があると、インデントを一つ浅くします。もし改行したい場
合は、改行系の命令を使用してください。
n 空行を有効にします。デフォルトはこのモードです。空行がある
と、そのまま改行します。
u 加工、非加工の変更をします。デフォルトは加工で、指定するた
びに非加工、加工となります。主に、このフォーマッタで処理出
来ないような表処理を行うとして、手作業でやるという時に使う
べきでしょう。
to タブを区切り文字として使えるようにします。この設定をしてお
きますと、タブが出てきたら、そこで文の終わりと判断します。
tn タブを通常文字として展開して扱います。と言っても、シーケン
ス行の時は区切り文字としての役割を果たします。
ts タブサイズを設定します。初期値は8です。
【加工要素設定系】
w 全体幅を指定します。区切ったあとに、数値で指定します。上限
加減を間違えると、悲劇が起こるでしょう。デフォルトは、72
です。この基準ですが、普通の文字は半角で72文字分だけ書か
れ、最大で全角の括弧が一つはみ出し、そのあとに改行コードが
入ります。つまり、普通の80桁エディタ、ページャーの場合は、
77がもっとも効率よく正常に見れます。下限は、実際の行出力
の時にエラーとして分かります。
x 横のオフセットを決めます。インデント0の時の桁として設定し
ます。初期値は0です。
【加工出力系】
aN 改行による項目を作り、インデントを一つ増やします。もしaと
だけ書くと、そのまま項目には改行以外の装飾がされないままに
出力されます。もしあとに0~9までの数値を書くと、記号が前
に出てきます。何が出るかは、試してみてください。aaと二つ並
べると、装飾無しのセンタリング項目を作ります。
bN aと同じですが、インデントが増えません。なお、無装飾のセン
タリングはbaとなります。
t タイトルを出します。と言っても、事実上は改行とセンタリング
の組合せです。このあとにタブかスペースをおき、そのあとに文
を書いてください。日付とか、余計な出力は一切しません。
c センタリングを行います。このあとに、タブかスペースを挟んで、
文を書いてください。もし、センタリングが出来ないほど長かっ
たら、エラーを通告します。
s 項目の出力を行います。指定した文を、括弧で囲ったあとに出力
します。そのあとに、インデントが自動的に1つ増えます。
m インデントを初期化し、改行を五回行ったあとに項目を作ります。
あとはsと同じです。やはり、インデントは1つ増えます。何に
使うかと言うと、sはネストできるのに対し、mはできません。親
の項目を作る時に使えます。
z 右寄せを行います。このあとに文を書いてください。
【インデント操作系】
i インデントを深くします。何も指定しないと、一つだけ深くなり
ます。このあとに、スペースかタブを置いて数値を指定すると、
その分だけインデントを深くします。注意することは、インデン
トする直接の空白を決める訳では無いことです。
iw 一つのインデントの空白数を設定します。半角だけが有効です。
ic インデントの空白を、適当なものに変えます。半角文字しか指定
できません。文字列として指定しますが、有効なのは最後の文字
だけです。
o インデントを解除します。何も指定しないと、1つだけ解除し、
数値を書くと、その分だけ解除します。なお、インデントはマイ
ナスにはなりませんし、その警告も出しません。
si 次の表示行から有効になる、サブインデントを設定します。特徴
としては、項目に対しては有効で無い事と、直接空白数で指定す
る事です。これは、文の一行目だけはインデントを浅くしたい時
に使います。この部分も、それを使って書かれています。
【改行系】
r 改行します。数値を指定すれば、その分だけ改行し、何も指定し
なければ、1つだけします。
f 上下の文の間隔を指定します。実際は、その分だけ改行するだけ
です。次の行に文があったときにのみ、実行します。
これらのコードは全て、行頭にある必要があります。つまり、設定は行単
位で行うしかありません(行の途中ではシーケンスを発行出来ない)。
【書式仕様】
Dコマンドで指定できる書式は、いくつかあります。
【書式1】
%〔最大幅〕{s,c}
最大幅を指定すると、少なくとも半角にしてその分だけは書かれます。
読み取った文字列をはめてみて、オーバーしたらオーバーして表示し、
満たなかったらインデント文字で埋めます。sの時、幅はマイナスでも
指定でき、その時は左寄せになります。sで最大幅が正の数だったとき
は右寄せとなります。cの時はセンタリングを行います。
【example】
%-10s
%5c
【書式2】
%<〔ベース文字列〕>〔+/-〕{s,c}
ベース文字でまず埋め、その上から読み込んだ文字列を重ねます。オー
バーした時はベース文字列は幅のみを指定しただけになりますが、満た
なかった時はベース文字列が代わりに埋められます。符号とかは書式1
と変わりません。
【example】
%<-------->-s
%<***************>c
【特殊指定子】
%に大文字のCを書くと、現在のテキストフォーマットの幅に合わせ
て取り込んだ文字列のセンタリングを行います。Zを指定しますと、右
寄せになります。フォーマット処理でセンタリングを使いたい場合は、
これらを使ってください。
【ループ記号】
半角&は、ループ記号として予約されています。
&で挟まれた部分は、書式をループさせます。普通に文字列を書式に
当てはめていくと無限に繰り返し続けるので、抜けたい時は文字列の最
後に半角/(スラッシュ)を書いてください。この処理の為、半角/は
最後には書けません。なお、一つしか&が無かった時は、書式の最後ま
でのループとなります。
【ダミー文字列】
スラッシュ(割り算の記号)は、ヌル文字列として処理されます。つ
まり、ダミーという事になります。書式設定の時にダミーが必要になる
事がありますので、その時に使ってください。
【シーケンス一覧表】
com. op. command name default
aN <st> paragraph A
bN <st> paragraph B(not indent)
c <st> Centering
d [st] Define format "%s"
dd Define on/off on
di Define init
f <n> Format return(cr+lf) 0
i [n] indent In 0
ic <st> Indent Charactor space
iw <n> Indent Width 4
m <st> Master paragraph
n Null-line skip cancel cancel
ns Null-line Skip
o [n] indent Out 0
r [n] Return(cr+lf)
s <st> Sub paragraph
si <n> Sub Indent 0
t <st> Title
to Tab on on
tn Tab not
ts <n> Tab Size 8
u Un-edit or not
w <n> Width 72
x <n> X offset 0
z <st> righting
【次回への課題】
ページを作ってしまおうという事も考えている。それに伴い、大項目(名
前)と小項目を上に書き、改ページとか項目設定などの命令が追加される。
印刷の段階では良いかもしれないが、普通にディスプレイで見るだけならば
あまり意味が無いので、見やすい文章というのをもう一度考えてから付け足
す。
【改変履歴】
1992/12/11 V1.0 初版.
1992/12/12 V2.0 書式設定の追加.
1992/12/23 V2.1 タブの有効処理、右寄せ、書式の中
のセンタリング、エラー処理、指定
方法の変更.
1993/01/07 V2.2 インデントのタブによる最適化、書
式中の右寄せ、書式中のテキスト幅
によるセンタリング、設定ファイル
を無くした、バグ修正など.
1993/01/09 V2.2a スラッシュ重複などのバグ修正.
1993/01/15 V2.3 adを削除、nsを拡張、&ループ
の拡張.
1993/01/30 V2.3a #の注釈、ddの追加.